package cn.tedu.sp04.order.feignclient;

import cn.tedu.sp01.pojo.Item;
import cn.tedu.web.util.JsonResult;
import org.springframework.stereotype.Component;

import java.util.Arrays;
import java.util.List;

//远程访问Item服务器降级时，执行这个FB方法
@Component
public class ItemFeignClientFB implements ItemFeignClient {


    @Override
    public JsonResult<List<Item>> getItems(String orderId) {
        //我规定，有40%的概率去执行FB中的方法
        if(Math.random()<0.6){
            //新建5个item缓存
            Item item1 = new Item(1,"item缓存aaa",2);
            Item item2 = new Item(2,"item缓存bbb",1);
            Item item3 = new Item(3,"item缓存ccc",3);
            Item item4 = new Item(4,"item缓存ddd",1);
            Item item5 = new Item(5,"item缓存eee",5);
            //把5个缓存放进items数组
            Item[] items = new Item[]{item1,item2,item3,item4,item5};
            //把items数组变成itemList集合
            List<Item> itemList = Arrays.asList(items);

            //如果把itemList集合返回
            return JsonResult.ok().data(itemList);
        }

        //如果是另60%的概率，就返回失败
        return JsonResult.err().msg("获取此订单的item列表失败！");
    }

    @Override
    public JsonResult decreaseNumber(List<Item> items) {
        //100%返回 失败信息
        return JsonResult.err().msg("item库存减少失败！");
    }
}
